package com.example.myshopping3.model;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @author 路老师
 * @date 2025/7/22
 * 无精神，不编程！无乐趣，不编程！
 * “调试：与bug共舞的艺术。”
 * 订单对应的实体类
 */
@Data
@TableName("tbl_order")
public class Orders implements Serializable {

    @TableId(value = "order_id", type = IdType.INPUT)
    private String orderId;//订单ID

    private String userId; //订单所属用户ID

    private String orderToName;//用户名
    private String orderToAddress;  //地址
    private String orderToPhone; //电话

    //@TableField(fill= FieldFill.INSERT)
    private Date orderTime; //订单时间
    private Integer orderStatus;  //订单状态
    private Double orderTotalPrice; //订单合计价格

    @TableField(fill= FieldFill.INSERT)
    private Date createTime;   //订单创建时间

    @TableField(fill = FieldFill.UPDATE)
    private Date updateTime; //订单更新时间

    private Integer isDeleted;   //是否删除
    private Integer payStatus; //支付状态

}

/*
@TableId(value="order_id", type = IdType.INPUT)是MyBatis-Plus框架中的注解，用于指定实体类字段与数据库表主键的映射关系及主键生成策略‌。具体含义如下：

        value="order_id"
        表示该字段映射到数据库表中的主键列名为order_id‌。

        type = IdType.INPUT
        表示主键生成策略为手动输入，即插入数据时必须显式指定主键值，若未赋值则会报错‌。适用于需要自定义主键（如业务编号、联合主键等）的场景‌。

        对比其他常见主键策略：

        IdType.AUTO：数据库自增主键‌
        IdType.ID_WORKER：雪花算法生成全局唯一ID
    */
